package dao;

import com.google.inject.ImplementedBy;
import services.User_Repository_JPA;
import vo.UserInfo_C_Entity;

import java.util.List;
import java.util.concurrent.CompletionStage;

/**
 * This interface provides a non-blocking API for possibly blocking operations.
 */
@ImplementedBy(User_Repository_JPA.class)
public interface User_Repository {

    CompletionStage<UserInfo_C_Entity> isRegistered(String mobile, String password);
    CompletionStage<List<UserInfo_C_Entity>> getUserList();
//    CompletionStage<String> CreateUsers(String type, String fdUserName, String fdImei, String fdDeptId, String fdRegisterDate, String fdLastLoginDate, String fdToken, String fdMobile, String deleted, String fd_MemberNo);
    CompletionStage<List<Object>>  login(String mobile, String password, String IMEI);
    CompletionStage<List<Object>>  webLogin(String mobile, String password);
    CompletionStage<Object> CreateUser(String type, String fdUserName, String fdImei, String fdDeptId, String fdRegisterDate, String fdLastLoginDate, String fdToken, String fdMobile, String deleted, String fd_MemberNo);
    CompletionStage<Object>  logout(String mobile);
    CompletionStage<String>  ModifyPassword(String phoneNumber ,String oldPassword,String newPassword);
    CompletionStage<String>  ModifyUserMobile(String oldPhoneNumber, String newPhoneNumber);
    CompletionStage<String>  DeleteUser(String phoneNumber);
    CompletionStage<String>  UnbindMobileAndEquipment(String phoneNumber);
    CompletionStage<String>  DeleteUnit(String depetId);
}
